/**
 * Undefined
 * Undefined类型只有一个值，就是undefined
 */

/**
 * 1. 使用var或者let声明了变量，但未初始化值
 *  - typeof 为undefined
 *  - 值也为 undefined
 */
let msg
var msg1

console.log(msg) //undefined
console.log(msg1) //undefined

/**
 * 2. 没有声明，直接使用
 * - typeof 为undefined
 * - 使用时会报错
 */
console.log(typeof msg2) //undefined
delete msg2 //严格模式下会报错
console.log(msg2) // msg2 is not defined

/**
 * 即使未初始化的变量会被自动赋予undefined值，但我们仍然建议在声明变量的同时进行初始化。
 * 这样，当 typeof 返回"undefined"时，你就会知道那是因为给定的变量尚未声明,而不是声明了但未初始化。
 */

/**
 * undefined是一个假值 ==>false
 */
//console.log(Boolean(undefined)) //false

// if (!undefined) {
//   console.log('1----')
// }
